const db = wx.cloud.database();
let isClick = true;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id:"",//商品类型id
    productTypeName:'',//商品类型名称
    goodsList:[],//商品列表
    name: "",
    code: "",
    save: "",
    number: "",
    picurl: "",
    price:"",
    _id: '',
    dialogName: '添加卖场',
    dialogFlag: 1,
    hideFlag: true,//true为隐藏   false为显示
    dis: false,//定义事件方法按钮是否可用
    detailState:false
  },
  // 删除商品
  delGoods: function (event) {
    var id = event.target.dataset.id;
    var _that = this
    wx.showModal({
      title: '删除卖场',
      content: '您确定要删除这个商品吗?',
      showCancel: true,
      cancelText: '取消',
      confirmText: '确定',
      confirmColor: '#17abe3',
      success: function (res) {
        if (res.confirm) {
          // 将执行删除卖场操作
          wx.cloud.callFunction({
            name: 'delProduct',
            data: {
              id
            },
            success: res => {
              wx.showToast({
                title: '删除成功'
              })
              // 再次重新获取全部卖场数据
              _that.getgoodsList();
            },
            fail: err => {
              wx.showToast({
                title: '删除失败',
                icon: 'none'
              })
            }
          })

        }
      }
    })

  },
  // 根据商品类型id获取商品列表
  getgoodsList: function () {
    var that=this
    var id =this.data.id
    wx.cloud.callFunction({
      name: "findProductListByTypeId",
      data: {
        productTypeId: id
      },
      success: res => {
        that.setData({
          goodsList:res.result.data
        })
        console.log(res)
      },
      fail: err => {
        console.log(err)
      }
    })
  },
  // 添加商品
  addGoods: function () {
    // 显示模态框
    this.clearInput();
    this.setData({
      hideFlag: false,
      dialogFlag: 1,
      dialogName: "添加商品",
      dis: true
    })
  },
  // 获取用户输入的信息

  getName: function (e) {
    this.setData({
      name: e.detail.value
    })
  },

  getCode: function (e) {
    this.setData({
      code: e.detail.value
    })
  },

  getSave: function (e) {
    this.setData({
      save: e.detail.value
    })
  },
  getPrice:function(e){
    this.setData({
      price: e.detail.value
    })
  },
  getNumber: function (e) {
    this.setData({
      number: e.detail.value
    })
  },

  // 清空文本框
  clearInput: function () {
    //  console.log("我要清空文本框")
    this.setData({
      'name': "",
      'code': "",
      'save': "",
      'number': "",
      'picurl': "",
      "price":""
    })
  },

  // 单击确定之后
  acertain: function () {
    var id = this.data.id;
    console.log("产品类型Id", id)
    if (isClick) {
      isClick = false;
      setTimeout(function () {
        isClick = true;
      }, 1000);//一秒内不能重复点击
    } else {
      return;
    }
    var dialogFlag = this.data.dialogFlag;
    console.log(dialogFlag)
    // 使用dialogFlag 判断这个对话框是修改的对话框还是添加卖场的对话框
    // 1  是添加卖场的对话框
    // 2  修改的对话框
    var _that = this
    if (this.data.name.length < 1) {
      wx.showToast({
        title: '商品名称不能为空',
        icon: 'none',
        mask: true
      })
      return false
    }
    if (this.data.code.length < 1) {
      wx.showToast({
        title: '商品条码不能为空',
        icon: 'none',
        mask: true
      })
      return false
    }




    if (this.data.save.length < 1) {
      wx.showToast({
        title: '商品库存不能为空',
        icon: 'none',
        mask: true
      })
      return false
    }
    if (this.data.number.length < 1) {
      wx.showToast({
        title: '商品编号不能为空',
        icon: 'none',
        mask: true
      })
      return false
    }
     var reg = /^[a-zA-Z0-9]{4,10}$/;//用于规范编号

    if (!reg.test(this.data.number)) {
      wx.showToast({
        title: '商品编号不能只能为数字或字母(宽度在4-9)',
        icon: 'none',
        mask: true
      })
      return false
    }

    var name = this.data.name;
    var code = this.data.code;
    var save = this.data.save;
    var number = this.data.number;
    var price=this.data.price;
    var code=this.data.code
    var picurl = this.data.picurl;
    console.log("获取的图片地址",picurl)
    var _id = this.data._id;
    var productTypeName = this.data.productTypeName
    // console.log(_id)



    this.setData({
      dis: true
    })


    // console.log(coll)
    // 添加数据到云数据库
    // 如果是1 添加卖场

    
    if (dialogFlag == 1) {
      _that.data.dis = false;
      _that.dis = false;
      _that.setData({
        dis: false
      })
      
    // 判断商品条码是否已经存在
    db.collection("product").where({
      qr:this.data.code
    }).get({
      success:res=>{
        console.log(res)
        if(res.data.length>0){
          wx.showToast({
            title: '该条码已存在',
            duration:1000,
            icon:"none"
          })
          _that.setData({
            code:"",
            dis:true
          })
          return false
        }else{
          wx.cloud.callFunction({
            name: "addProduct",
            data: {
              newData: {
                productTypeId: id,
                qr:code,
                store:save,
                number,
                price,
                productTypeName,
                name,
                picurl,
                stepCount:0
              }
            },
            success: (res) => {
              wx.showToast({
                title: '添加卖场成功',
                icon: 'none',
                mask: true,
                success: function (res) { console.log("我是添加卖场时候的阻碍") },
                fail: function (res) { },
                complete: function (res) { },
              })
              _that.setData({
                hideFlag: true,
                dis: true
              })
              // 清空数据
              _that.clearInput();
              // 重新获取全部卖场列表
              _that.getgoodsList();
            },
            fail: (err) => {
              wx.showToast({
                title: '添加卖场失败',
                icon: 'none'
              })
            }
          })
          _that.setData({
            dis: false
          })

        }
      },
      fail:err=>{
        console.log(err)
      }
    })






     
    } else if (dialogFlag == 2) {
      console.log(dialogFlag)
      console.log(_id)
      var name = _that.data.name;
      var code = _that.data.code;
      var price = _that.data.price;
      var number = _that.data.number;
      var save = _that.data.save;
      var picurl = _that.data.picurl;
      var _id = _that.data._id
      console.log(_that.data._id)
      // 如果是2 就是修改

       // 判断商品条码是否已经存在
    db.collection("product").where({
      qr:this.data.code
    }).get({
      success:res=>{
        console.log(res)
        if(res.data.length>1){
          wx.showToast({
            title: '该条码已存在',
            duration:1000,
            icon:"none"
          })
          _that.setData({
            code:"",
            dis:true
          })
          return false
        }else{
          wx.cloud.callFunction({
            name: "updateProduct",
            data: {
              newData: {
                id: _id,
                number,
                qr:code,
                name,
                price,
                store:save,
                picurl
                
              }
            },
            success: res => {
              console.log("我是输出信息", res)
              wx.showToast({
                title: '修改成功',
              })
              _that.setData({
                hideFlag: true
              })
              //  重新获取全部卖场列表
              _that.getgoodsList();
              return false
            },
            fail: err => {
              wx.showToast({
                title: '修改失败',
                icon: 'none'
    
              })
            }
          })
        }
      }
    })
      



    }


    this.setData({
      dis: false
    })
  },
  // 单击取消之后
  cancel: function () {
    this.setData({
      hideFlag: true
    })
  },
  // 单击添加图片
  addImg: function () {
    var that = this
    wx.chooseImage({
      count: 1,
      sourceType: ['album', 'camera'],
      success: function (res) {
        var tempFilePaths = res.tempFilePaths;
        // console.log()
        that.handlerUpload(tempFilePaths[0])
        console.log("上传之后的图片地址",that.data.picurl)
        // that.setData({
        //   picurl: tempFilePaths[0]
        // })
      },
    })
  },

  // 上传图片方法
  handlerUpload(fileUrl){
    wx.cloud.uploadFile({
      cloudPath:new Date().getTime()+'.png',//上传到云端的路径
      filePath:fileUrl,
      success:res=>{
        console.log("上传成功",res)
        wx.showToast({
          title: '上传成功',
        })
        this.setData({
          picurl:res.fileID
        })
      },
      fail:err=>{
        console.log(err)
      }
    })
  },
  // 隐藏对话框
  hideModal: function () {
    this.setData({
      hideFlag: true
    })
  },

  hiddenDetail(){
    this.setData({
      detailState:false
    })
  },
  // 查看商品详情
  seeDetail(e){
    var id = e.target.dataset.id;
    var _that = this
    this.setData({
      detailState:true
    })

    // 根据id获取数据
    db.collection("product").doc(id).get({
      success: res => {
        console.log(res)
        _that.setData({
          _id: res.data._id,
          name: res.data.name,
          price: res.data.price,
          number: res.data.number,
          id: res.data.productTypeId,
          productTypeName: res.data.productTypeName,
          picurl: res.data.picurl,
          save:res.data.store,
          code:res.data.qr
        })
      },
      fail: err => {
        console.log(err)
      }
    })
  },
  // 修改卖场信息
  modifyGoods: function (event) {
    this.setData({
      dialogName: "修改卖场",
      dialogFlag: 2,
      dis: true
    })
    var id = event.target.dataset.id;
    var _that = this
    // 根据id获取数据
    db.collection("product").doc(id).get({
      success: res => {
        console.log(res)
        _that.setData({
          _id: res.data._id,
          name: res.data.name,
          price: res.data.price,
          number: res.data.number,
          id: res.data.productTypeId,
          productTypeName: res.data.productTypeName,
          picurl: res.data.picurl,
          save:res.data.store,
          code:res.data.qr
        })
      },
      fail: err => {
        console.log(err)
      }
    })

    _that.setData({

      hideFlag: false,
    })


  },

  onLoad: function (options) {
    var productTypeName=options.name//商品类型名称
    var id=options.id  //商品Id
    // var id ="eElowAyOrHoDITSlr09sxUIQrWS7vzf9TKYcbSfKXVcvTL4R"
    console.log(id)
    this.setData({
      id:id,
      productTypeName
    })
    wx.showLoading({
      title: '加载中……',
    })
    // 根据商品类型id获取商品列表
    wx.cloud.callFunction({
      name:"findProductListByTypeId",
      data:{
        productTypeId:id
      },
      success:res=>{
        this.setData({
          goodsList:res.result.data
        })
        wx.hideLoading({
          success: (res) => {
            console.log("加载成功")
          },
        })
        console.log(res)
      },
      fail:err=>{
        console.log(err)
        wx.hideLoading({
          success: (res) => {
            console.log("加载失败")
          },
        })
      }
    })

  },
  // 扫码
  handlerScan(){
    var that=this;
    wx.scanCode({
      success:res=>{
        console.log(res)
        // res.result  需要这个结果
        that.setData({
          code:res.result
        })
      },
      fail:err=>{
        wx.showToast({
          title: '扫码失败',
          icon:"none"
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})